# 使用Node.js 18作为基础镜像
FROM node:18-alpine

# 安装系统依赖和LibreOffice
RUN apk update && apk add --no-cache \
    libreoffice \
    openjdk11-jre \
    fontconfig \
    ttf-dejavu \
    bash \
    curl \
    && rm -rf /var/cache/apk/*

# 设置工作目录
WORKDIR /app

# 复制package.json和package-lock.json
COPY package*.json ./

# 安装Node.js依赖
RUN npm install --legacy-peer-deps --production

# 复制项目文件
COPY . .

# 创建uploads目录
RUN mkdir -p uploads

# 构建React应用
RUN npm run build

# 复制启动脚本
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

# 暴露端口
EXPOSE 9090 9091

# 设置环境变量
ENV NODE_ENV=production
ENV PORT=9090
ENV BACKEND_PORT=9091

# 启动脚本
ENTRYPOINT ["docker-entrypoint.sh"]